#!/bin/bash
# Interfaces tap a crear
INTERFACES_TAP="tap1 tap2 tap3 tap4 tap5 tap6 tap7 tap8 tap9 tap10"
INT_TAP_HOSTA="tap1"
INT_TAP_HOSTB="tap7"
INT_TAP_HOSTC="tap8"
INT_TAP_DNSROOT="tap6"
INT_TAP_DNS1="tap2"
INT_TAP_DNS2="tap5"
INT_TAP_WEBSERVER="tap3"
INT_TAP_FTPSERVER="tap4"
INT_TAP_TELNET_SUP="tap9"
INT_TAP_TELNET_INF="tap10"

. ../constantes.sh
. ../f_auxiliares.sh

chequear_usuario_root

# Se eliminan todas las instancias activas de openvpn
kill_openvpn

# Se elimina todo el contenido de la tabla de ruteo
eliminar_tabla_de_ruteo

# Se setea la direccion ip del equipo
ifconfig eth0 $IP_PC_GNS3 netmask $MASK_PC_GNS3

# Creacion de las interfaces tap
for t in $INTERFACES_TAP; do
	openvpn --mktun --dev $t
	ifconfig $t 0.0.0.0 promisc up
done

# Creacion de tunel para host A
openvpn --proto udp --lport $GNS3_PORT_HOSTA --rport $HOSTA_PORT --dev $INT_TAP_HOSTA >> logs/openvpn_hosta.log &

# Creacion de tunel para host B
openvpn --proto udp --lport $GNS3_PORT_HOSTB --rport $HOSTB_PORT --dev $INT_TAP_HOSTB >> logs/openvpn_hostb.log &

# Creacion de tunel para host C
openvpn --proto udp --lport $GNS3_PORT_HOSTC --rport $HOSTC_PORT --dev $INT_TAP_HOSTC >> logs/openvpn_hostc.log &

# Creacion de tunel para DNS root
openvpn --proto udp --lport $GNS3_PORT_DNSROOT --rport $DNSROOT_PORT --dev $INT_TAP_DNSROOT >> logs/openvpn_dnsroot.log &

# Creacion de tunel para DNS1
openvpn --proto udp --lport $GNS3_PORT_DNS1 --rport $DNS1_PORT --dev $INT_TAP_DNS1 >> logs/openvpn_dns1.log &

# Creacion de tunel para DNS2
openvpn --proto udp --lport $GNS3_PORT_DNS2 --rport $DNS2_PORT --dev $INT_TAP_DNS2 >> logs/openvpn_dns2.log &

# Creacion de tunel para webserver
openvpn --proto udp --lport $GNS3_PORT_WEBSERVER --rport $WEBSERVER_PORT --dev $INT_TAP_WEBSERVER >> logs/openvpn_webserver.log &

# Creacion de tunel para ftp server
openvpn --proto udp --lport $GNS3_PORT_FTPSERVER --rport $FTPSERVER_PORT --dev $INT_TAP_FTPSERVER >> logs/openvpn_ftpserver.log &

# Creacion de tunel para telnet server superior (aquel que da a la red I)
openvpn --proto udp --lport $GNS3_PORT_TELNET_SUP --rport $TELNET_SUP_PORT --dev $INT_TAP_TELNET_SUP >> logs/openvpn_telnet_sup.log &

# Creacion de tunel para telnet server inferior (aquel que da a la red J)
openvpn --proto udp --lport $GNS3_PORT_TELNET_INF --rport $TELNET_INF_PORT --dev $INT_TAP_TELNET_INF >> logs/openvpn_telnet_inf.log &
